﻿#pragma once

/*
 * 这是一个扩展的日志程序，支持为不同的模块提供不同的日志程序
*/
extern "C" {
	/*
	 * @brief 有使用者负责实现的日志打印行数
	 * @note 在本行数中，有意没有提供pid，tid及日期等信息， 因为这些信息用户可以自己获取到
	*/
	typedef void (*HI_LOG_FUN)(const char* module, short logLevel,  const char* file, const char* function, int line, const char* log);
	
	/*
	 * @brief 设置用户实现的日志输出函数
	 * @param[in] func 用户实现的日志输出函数,可以为空，如果为空，则表示忽略日志。
	 * 
	*/
	void hi_set_log(const char* module, HI_LOG_FUN func);

	void hi_debug_ex(const char* module,  const char* file, const char* function, int line, const char* log);
}